#include <string>
class Person{
    private:
    std::string name;
    protected:
    const std::string getName(void);
    public:
    // 显式的禁止系统生成默认的拷贝构造函数
    explicit Person(const Person & p) = delete;
    // 显式的禁止系统生成拷贝赋值运算符
    Person& operator=(const Person &p) = delete;
    Person(const std::string aname):name(aname) {}
    // 可能会被其它类所继承的类，要将析构函数写成虚函数
    virtual ~Person();
    // 加上了const限制符可以使用const变量和非const变量，但是如果没有const修饰符，那么只能输入非const变量的参数
    void setName(const std::string &name);
    void showPersonInfo();

};